In a typical graphic user interface (GUI) development process, the GUI may be designed by a designer based upon customer or client surveys, marketing surveys, and other sources of information that drive the functionalities and appearance to be included in the GUI to be developed. The GUI may describe an application's desired user interface (UI), such as mockup images of various screens for the application, the design and look-and-feel of the screens, transitions between screens, and the like. In addition to mockup images of the screens, the GUI may also include text content that provides information regarding the GUI to the users.
The GUI (including images of GUI screens) for an application may be documented in a document (e.g., a design document) or specification (e.g., an image file or a schematic sketch) by a designer. The GUI design document may then be used to create or develop the code for implementing the GUI for the application. For example, during a development phase, the GUI design document, comprising one or more images or sketches of the GUI screens for the application, may be provided to an engineering organization comprising engineers or developers who are tasked with writing code for implementing the GUI and/or the application based upon the GUI design document. These developers may manually write the code or may use a “Drag n Drop” based development tool to manually build the desired GUI screens and generate code that implements the GUI with the desired appearance and functionalities described in the GUI design document.
Thus, the development of a GUI for an executable application from a design document may involve substantial manual effort by the developers. It may require the developers to study the design document, understand the requirements including the desired functionalities and appearance of the GUI screens, and then write code to implement the GUI and/or the application. It may also require the developers to have knowledge about the application development platform and programming language to be used for developing the GUI and also have knowledge about the specific target system or platform (e.g., iOS® or Android®, mobile or desktop) for which the GUI and the application are to be developed. As a result, quite often, developers with specific expertise are needed for the GUI development. All these factors cause the development phase to be tedious, time consuming, labor-intensive, and expensive.